Methods, systems, and media for controlling a bi-directional hdmi port

ABSTRACT

In accordance with some implementations of the disclosed subject matter, a method for controlling a High-Definition Multimedia Interface (HDMI) port is provided, the method comprising: generating a first voltage at a first pin of the HDMI port; detecting a second voltage at the first pin of the HDMI port; detecting a third voltage at a second pin of the HDMI port; comparing the second voltage to the first voltage; comparing the second voltage to the third voltage; determining based on the comparison of the second voltage to the third voltage that the HDMI port of the device is connected to an HDMI source; causing the HDMI port to act as an HDMI sink; determining based on the comparison of the second voltage to the first voltage that the HDMI port of the device is connected to an HDMI sink; and causing the HDMI port to act as an HDMI source.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/327,925, filed Jul. 10, 2014, which is hereby incorporated byreference herein in its entirety.

TECHNICAL FIELD

The disclosed subject matter relates to methods, systems, and media forcontrolling a bi-directional HDMI port.

BACKGROUND

Typical High-Definition Multimedia Interface (HDMI) ports are either anoutput of data from a source device (e.g., a source of audio and/orvideo data such as a set-top box, a digital media receiver, an opticalmedia player, etc.) or an input of data to a sink device (e.g., areceiver of audio and/or video data such as an A/V receiver, monitors,entertainment systems, television sets, speakers, headphones etc.). Ingeneral, an HDMI port in a device is connected to an HDMI connector anduses a unidirectional interface to transmit audio and/or video data, forexample from an HDMI source to an HDMI sink so that the audio and/orvideo data can be presented. In such an implementation, for a device toreceive audio and/or video data and also output audio and/or video data,separate HDMI ports are required for each function.

Moreover, particular devices, such as an A/V receiver or a monitor, havethe capability of supporting both the input and the output of data. Thiscan be a source of confusion for users, particularly when these usersare setting up or configuring such devices.

Accordingly, it is desirable to provide methods, systems and media forcontrolling a bi-directional HDMI port.

SUMMARY

In accordance with various implementations of the disclosed subjectmatter, methods, systems, and media for controlling a bi-directionalHDMI port are provided.

In accordance with some implementations of the disclosed subject matter,a method for controlling a bi-directional HDMI port are provided, themethod comprising: generating a first voltage at a first pin of the HDMIport; detecting a second voltage at the first pin of the HDMI port;detecting a third voltage at a second pin of the HDMI port; comparingthe second voltage to the first voltage; comparing the second voltage tothe third voltage; determining based on the comparison of the secondvoltage to the third voltage that the HDMI port of the device isconnected to an HDMI source; causing the HDMI port to act as an HDMIsink based on the determination that the HDMI port is connected to theHDMI source; determining based on the comparison of the second voltageto the first voltage that the HDMI port of the device is connected to anHDMI sink; and causing the HDMI port to act as an HDMI source based onthe determination that the HDMI port is connected to the HDMI sink.

In accordance with some implementations of the disclosed subject matter,a system for controlling a bi-directional HDMI port are provided, thesystem comprising: a switch having a first side coupled to a first pinand a second side coupled to a second pin of the HDMI port; a voltagesource coupled to the first side of the switch; a diode with a firstside coupled to the first side of the switch and a second side coupledto a signal source; a resistor with a first side coupled to the secondpin of the HDMI port and a second side coupled to ground; and at leastone hardware processor that: calculates a first voltage differencebetween the node and the signal source; calculates a second voltagedifference between the node and the second side of the switch; comparesthe first voltage and the second voltage; determines based on thecomparison that the HDMI port of the device is connected to an HDMIsource; causes the HDMI port to act as an HDMI sink based on thedetermination that the HDMI port is connected to the HDMI source;determines based on the comparison that the HDMI port of the device isconnected to an HDMI sink; and causes the HDMI port to act as an HDMIsource based on the determination that the HDMI port is connected to theHDMI sink.

In accordance with some implementations of the disclosed subject matter,a non-transitory computer readable medium containing computer executableinstructions that, when executed by a processor, cause the processor toperform a method for controlling a High-Definition Multimedia Interface(HDMI) port in a device connected to an HDMI connector, the methodcomprising: generating a first voltage at a first pin of the HDMI port;detecting a second voltage at the first pin of the HDMI port; detectinga third voltage at a second pin of the HDMI port; comparing the secondvoltage to the first voltage; comparing the second voltage to the thirdvoltage; determining based on the comparison of the second voltage tothe third voltage that the HDMI port of the device is connected to anHDMI source; causing the HDMI port to act as an HDMI sink based on thedetermination that the HDMI port is connected to the HDMI source;determining based on the comparison of the second voltage to the firstvoltage that the HDMI port of the device is connected to an HDMI sink;and causing the HDMI port to act as an HDMI source based on thedetermination that the HDMI port is connected to the HDMI sink.

In accordance with some implementations of the disclosed subject matter,a system for controlling a High-Definition Multimedia Interface (HDMI)port in a device connected to an HDMI connector is provided, the systemcomprising: switching means for interrupting a flow of current, having afirst side coupled to a first pin and a second side coupled to a secondpin of the HDMI port; means for generating a voltage at the first sideof the switch; means for allowing a unidirectional flow of current froma voltage signal source to the first side of the switch; means forcoupling the second pin of the HDMI port to ground; means forcalculating a first voltage difference between the first pin and thesignal source; means for calculating a second voltage difference betweenthe first pin and the second side of the switch; means for comparing thefirst voltage and the second voltage; means for determining based on thecomparison that the HDMI port of the device is connected to an HDMIsource; means for causing the HDMI port to act as an HDMI sink based onthe determination that the HDMI port is connected to the HDMI source;means for determining based on the comparison that the HDMI port of thedevice is connected to an HDMI sink; and means for causing the HDMI portto act as an HDMI source based on the determination that the HDMI portis connected to the HDMI sink.

In some implementations, the system further comprises means fordetermining based on the comparison of the first voltage and the secondvoltage that the HDMI port of the device is connected to abi-directional HDMI port; and means for causing the device comprisingthe HDMI port to prompt a user to set the HDMI port to act as an HDMIsource or an HDMI sink based on the determination that the HDMI port isconnected to the bi-directional HDMI port.

In some implementations, the system further comprises means for causingthe HDMI port to act as a sink for multimedia data during a first periodof time during which the HDMI port is connected to an HDMI source andact as a source during a second period of time during which the HDMIport is connected to an HDMI sink.

In some implementations, the first pin is pin 18.

In some implementations, the second pin is pin 19.

In some implementations, the means for generating a voltage generates avoltage with a magnitude of 5 Volts.

In some implementations, the voltage signal source is a 3.3 Volt signalwith a frequency of 1 Hertz.

In some implementations, the system further comprises means fordetermining that the HDMI port is set as a sink based on the secondvoltage difference being between 5 Volts.

In some implementations, the system further comprises means fordetermining that the HDMI port is set as a source based on the firstvoltage difference being 0 Volts.

In some implementations, the system further comprises means fordetermining that the device comprising the HDMI port is a sink or asource based on prompting the user to set the HDMI port to act as a sinkor a source if the second voltage difference is a 3.3 Volt pulse signal.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the disclosed subjectmatter can be more fully appreciated with reference to the followingdetailed description of the disclosed subject matter when considered inconnection with the following drawings, in which like reference numeralsidentify like elements.

FIGS. 1A-1B show an example of a circuit for a bi-directional HDMI portconnected to an HDMI source device and corresponding waveforms inaccordance with some implementations of the disclosed subject matter.

FIGS. 2A-2B show an example of a circuit for a bi-directional HDMI portconnected to an HDMI sink device and corresponding waveforms inaccordance with some implementations of the disclosed subject matter.

FIGS. 3A-3B show an example of a circuit for a bi-directional HDMI portconnected to a device having a bi-directional HDMI port andcorresponding waveforms in accordance with some implementations of thedisclosed subject matter.

FIG. 4 shows an example of an illustrative system suitable forimplementation of the mechanisms described herein for controlling abi-directional HDMI port in accordance with some implementations of thedisclosed subject matter.

FIG. 5 shows an example of a process for controlling a bi-directionalHDMI port in accordance with some implementations of the disclosedsubject matter.

DETAILED DESCRIPTION

In accordance with various implementations, mechanisms which includemethods, media and systems for controlling a bi-directional HDMI portare provided.

In some implementations, the mechanisms described herein can be used todetermine that a bi-directional HDMI port outputs data or inputs dataand is connected to either an HDMI sink device (e.g., a receiver ofaudio and/or video data such as an A/V receiver, monitors, entertainmentsystems, television sets, speakers, headphones etc.), an HDMI sourcedevice (e.g., a source of audio and/or video data such as a set-top box,a digital media receiver, an optical media player, etc.), and/or adevice with another bi-directional HDMI port. Additionally, the devicethat includes the bi-directional HDMI port can be set to act as an HDMIsource and/or an HDMI sink based on the determination that the HDMI portis connected to an HDMI sink and/or an HDMI source.

In some implementations, the bi-directional HDMI port can be used in adevice that can act as an HDMI sink during a first period of time and anHDMI source during a second period of time. For example, the HDMI portcan be used in a device, such as a personal computer, a general purposecomputer, a server, a mobile phone, a tablet and/or any suitable devicethat can act as a source and/or a sink. In some such implementations,the HDMI port can prompt the device to request a user to set the HDMIdevice as a source or a sink. As a further example, in someimplementations, a personal computer with a bi-directional HDMI portconnected to the output data port of a set-box acts as a sink device anda personal computer with a bi-directional HDMI port connected to theinput data port of a monitor acts as a source device.

FIG. 1A shows an example 100 of a circuit with a bi-directional HDMIport connected to an HDMI source device in accordance with someimplementations of the disclosed subject matter. As shown in FIG. 1A, abi-directional HDMI port 130 in an HDMI device is connected to a sourceHDMI port 132 of a source device. In some such implementations, sourceHDMI port 132 can be connected to HDMI port 130 using an HDMI connector122 that includes a number of pins. For example, HDMI port 132 of asource device can include line 124 that carries a power supply voltage,and can be electrically coupled to pin 18 of a type A HDMI port or anyother suitable pin and/or combination of pins in any suitable type ofport. As another example, line 126 of HDMI port 132 of a source devicecan receive a voltage from a corresponding pin of a connector 118 ofbi-directional HDMI port 130. The voltage received on line 126 can beused to determine whether HDMI port 132 is connected to an HDMI sink byacting as a Hot-Plug Detection (HPD) line.

In some implementations, HDMI port 132 of a source device can include aresistor 128 with a first side coupled to line 126 of HDMI port 132 anda second side coupled to ground.

In some implementations, bi-directional HDMI port 130 can include anumber of pins that correspond to HDMI connector 118. For example,bi-directional HDMI port 130 of an HDMI device can include line 114 thatcarries a power supply voltage, such as pin 18 of a type A HDMI port orany other suitable pin and/or combination of pins in any suitable typeof port. As another example, bi-directional HDMI port 130 can includeline 116 that can provide a voltage to a corresponding pin of connector122 and can be used when HDMI port 130 is connected to an HDMI source byacting as a Hot-Plug Detection (HPD) line.

In some implementations, bi-directional HDMI port 130 can include aresistor 120 with a first side coupled to line 116 of HDMI port 130 anda second side coupled to ground.

In some such implementations, HDMI port 130 can include switch 112having a first side connected to line 114 and a second side connected toline 116.

In some implementations, bi-directional HDMI port 130 can include avoltage power source 102 coupled to the first side of switch 112. Forexample, a voltage power source that produces a DC voltage of +5 Voltscan be connected to switch 112. When switch 112 is closed, voltagesupplied by voltage source 102 can be present at line 116 and can bemeasured at point 108, for example. In some implementations, switch 112can be any suitable circuitry for determining the flow of currentthroughout the circuit, such as a relay, a mechanical switch, a MOSFETswitch, and/or any other suitable component.

In some implementations, bi-directional HDMI port 130 can be controlledbased on voltage measurements at points 104, 106, and/or 108. Forexample, to determine whether bi-directional HDMI port 130 is to be setas a sink or a source, a hardware processor and/or any other suitablelogic or circuit can use measurements of a voltage difference betweenpoints 104 and 106 and/or points 104 and 108.

FIG. 1B shows examples of waveforms corresponding to voltagemeasurements at points 104, 106, and 108 and measurements of voltagedifferences between point 104 and point 106 (labeled as (104)-(106)) andpoint 104 and point 108 (labeled as (104)-(108)) when bi-directionalHDMI port 130 is connected to port 132 in an HDMI source device. Forexample, waveform 140 shows a voltage at point 104 for different periodsof time. In some such implementations, a voltage at point 106, throughdiode 110, can be applied to a voltage at point 104 (e.g., 1 Hertz pulsesignal at 3.3 Volts) and as such without another voltage being appliedto point 104, the voltage can be the same as voltage at point 106. Whenport 132 is an active source, a voltage power supply of +5 Voltssupplied by line 124 of HDMI port 132 can be transmitted via an HDMIcable and/or any other suitable connection between port 132 andconnector 118 and can be reflected in the voltage at line 114 and point104 of bi-directional HDMI port 130, as shown in waveform 140 after timet₂.

An example of a waveform 150 shows a voltage at point 106 in accordancewith some implementations of the disclosed subject matter. For example,a voltage at point 106 can be a 3.3 Volts pulse signal with a 1 Hertzfrequency generated by a signal generator coupled to point 106.

An example of a waveform 160 shows a voltage at point 108 in accordancewith some implementations of the disclosed subject matter. In someimplementations, the voltage at point 108 can be at zero while switch112 is open (e.g., before “CLOSE SW” at time t₃ of FIG. 1B). When switch112 is closed, a voltage at point 108 can correspond to a voltage fromline 124 arriving at line 114. For example, when switch 112 is closed,the voltage measured at 108 can be +5 Volts.

An example of a waveform 170 shows a voltage difference between point104 and point 106 (labeled as (104)-(106)) in accordance with someimplementations of the disclosed subject matter. In someimplementations, the voltage difference can be zero when bi-directionalHDMI port 130 is not connected to another HDMI port or while connected,for example, using an HDMI cable, to an HDMI source device that isturned off (e.g., before “SOURCE TURNED ON” at time t₂ of FIG. 1B). Whenthe source device is turned on and HDMI port 132 is an active source, avoltage difference between point 104 and point 106 can correspond to thedifference between a voltage from line 124 arriving at line 114 and avoltage from a signal generator received at point 106. For example, whenswitch 112 is closed, the voltage difference between point 104 and point106 can be a pulse signal with a low amplitude of 1.7 Volts,corresponding to when point 106 is 3.3 Volts, a high amplitude of 5Volts corresponding to when 106 is 0 Volts, and a frequency of 1 Hertz.

An example of a waveform 180 shows a voltage difference between point104 and point 108 in accordance with some implementations of thedisclosed subject matter. In some implementations, a voltage differencebetween point 104 and point 108 can correspond to the voltagemeasurement at point 104 while HDMI port 130 is connected to a sourcedevice, but the device is turned off (e.g., before “SOURCE TURNED ON” attime t₂ of FIG. 1B). When switch 112 is closed, a voltage differencebetween point 104 and point 108 can correspond to the difference betweena voltage from line 124 arriving at line 114 and a voltage at point 104.For example, when switch 112 is open and HDMI port 132 is acting as asource while source device is turned on (e.g., after “SOURCE TURNED ON”at time t₂ of FIG. 1B), a voltage difference between point 104 and point106 can be a signal with an amplitude of +5 Volts (e.g., a DC voltage of+5 Volts). As another example, when switch 112 is closed (e.g., after“CLOSE SW” at time t₃ of FIG. 1B), the voltage difference between point104 and point 106 can be 0 Volts, as switch 112 provides a short betweenpoint 104 and point 106.

In some implementations, as described below in connection with process500 of FIG. 5, a determination can be made that bi-directional HDMI port130 is connected to a source device based on a voltage difference shownin waveform 170 and/or a voltage difference shown in waveform 180 whenthe device is turned on (e.g., after “SOURCE TURNED ON” at time t₂ ofFIG. 1B). For example, in some implementations, waveform 170 during aperiod of time (e.g., “T₁” at 170) can be a pulse signal with a lowamplitude of 1.7 Volts and a high amplitude of 5 Volts, with a frequencyof 1 Hertz, and waveform 180 during the same period of time can be asignal with an amplitude of +5 Volts.

FIG. 2A shows an example 200 of a circuit with a bi-directional HDMIport connected to an HDMI sink device, in accordance with someimplementations of the disclosed subject matter. As shown in FIG. 2A, abi-directional HDMI port 130 in an HDMI device is connected to an HDMIport 202 of a sink device. In some such implementations, HDMI port 202can be connected to HDMI port 130 using an HDMI connector 222 thatincludes a number of pins. For example, HDMI port 202 of a sink devicecan include line 224 that can receive a voltage power supply from line114 of a connector 118, such as pin 18 of a type A HDMI port or anyother suitable pin and/or combination of pins in any suitable type ofport. As another example, HDMI port 202 can include line 226 that canreceive the voltage power supply from line 224 and can determine whetherHDMI port 202 is connected to an HDMI source.

In some implementations, HDMI port 202 of a sink device can include aresistor 204 with a first side coupled to line 224 and a second sidecoupled to line 226 of HDMI port 202.

In some implementations, as described above in connection with FIG. 1A,bi-directional HDMI port 130 can be controlled based on voltagemeasurements at points 104, 106, and/or 108.

FIG. 2B shows examples of waveforms corresponding to voltagemeasurements at points 104, 106, 108 and measurements of voltagedifferences between point 104 and point 106 (labeled as (104)-(106)) andpoint 104 and point 108 (labeled as (104)-(108)) when bi-directionalHDMI port 130 is connected to HDMI sink port 202 in an HDMI sink deviceusing an HDMI cable. For example, waveform 210 shows a voltage at point104 for different periods of time. In particular, in someimplementations, HDMI ports 130 and 202 can be connected ordisconnected. In some such implementations, a voltage at point 104 cancorrespond to a voltage at point 106 (e.g., 1 Hertz pulse signal at 3.3.Volts) that passes through diode 110 (e.g., at least before “TURN ON+5V” at t₃ of FIG. 2B). For example, when HDMI sink port 202 isconnected, a voltage power supply of +5 Volts can be generated at 102 ofHDMI port 130 and can be applied to point 104 of bi-directional HDMIport 130, as shown in 210.

An example of a waveform 220 shows a voltage at point 106 in accordancewith some implementations of the disclosed subject matter. In someimplementations, for example, a voltage at point 106 can be a 3.3 Voltspulse signal with a 1 Hertz frequency generated by a signal generatorcoupled to point 106.

An example of a waveform 230 shows a voltage at point 108 in accordancewith some implementations of the disclosed subject matter. In someimplementations, a voltage at point 108 can be zero until HDMI sink port202 of a sink device is plugged in (e.g., before “HDMI SINK CONNECTED”at t₁ of FIG. 2B). For example, when the HDMI sink port 202 is pluggedin and a voltage from power supply 102 is not applied to 104, a voltageat point 108 can correspond to voltages at point 104 and point 106. Insome implementations, in particular, when HDMI sink port 202 is pluggedin, and a voltage from power supply 102 is not applied to 104, the pulsesignal generated at point 104 (e.g., a 1 Hertz pulse signal at 3.3Volts) can be transmitted via line 114 to connector 222 and then back topoint 108 via line 116. In some such implementations, voltage powersupply 102 can be turned on (e.g., at “TURN ON +5V” at t₃ of FIG. 2B)and the voltage at point 108 can be +5 Volts.

An example of a waveform 240 shows a voltage difference between point104 and point 106 in accordance with some implementations of thedisclosed subject matter. In some implementations, measurements of thevoltage difference can be zero until voltage power supply 102 is turnedon (e.g., at “TURN ON +5V” at t₃ of FIG. 2B) and the voltage differencebetween point 104 and point 106 can correspond to a difference betweenvoltages from line 114 and voltage from a signal generator coupled topoint 106. For example, when voltage power supply 102 is turned on, thevoltage difference measured between point 104 and point 106 can be apulse signal with a low amplitude of 1.7 Volts corresponding to whenvoltage at point 106 is 3.3 Volts, a high amplitude of +5 Voltscorresponding to when voltage at point 106 is 0 Volts, and a frequencyof 1 Hertz.

An example of a waveform 250 shows a voltage difference between point104 and point 108 in accordance with some implementations of thedisclosed subject matter. In some implementations, measurements of thevoltage difference can correspond to a voltage at point 104 when HDMIsink port 202 is not plugged in to HDMI port 130 via a cable and/or anyother suitable connector (e.g., before “HDMI SINK CONNECTED” at t₁ ofFIG. 2B). When the HDMI sink port 202 is plugged in, measurements of thevoltage difference between point 104 and point 108 can correspond to thedifference between voltages from line 114 that arrive at point 108 vialines 224, 226, and voltage at point 104. For example, when the HDMIsink port 202 is connected through a cable to HDMI port 130 and thevoltage power supply is turned on (e.g., “TURN ON +5V” at t₃ of FIG. 2B)the voltage difference measured between point 104 and point 106 can be asignal with an amplitude of 0 Volts.

In some implementations, as described below in connection with process500 of FIG. 5, a determination can be made that bi-directional HDMI port130 is connected to a sink device based on a voltage difference shown inwaveform 240 and/or a voltage difference shown in waveform 250 when theHDMI sink port 202 is plugged in to HDMI port 130 via a cable (e.g.,“HDMI SINK CONNECTED” at t₃ of FIG. 2B). For example, in someimplementations, waveform 240 during a period of time (e.g., “T₁” at240) can be a signal with an amplitude of 0 Volts and waveform 250during the same period of time can be a signal with an amplitude of 0Volts.

FIG. 3A shows an example 300 of a circuit with a first bi-directionalHDMI port connected to a second bi-directional HDMI port in accordancewith some implementations of the disclosed subject matter. As shown inFIG. 3A, a first bi-directional HDMI port 130 in a first HDMI device iselectrically coupled to a second bi-directional HDMI port 130-1 in asecond HDMI device. In some such implementations, first bi-directionalHDMI port 130 is connected to second bi-directional HDMI port 130-1using an HDMI cable and/or any other suitable connection, where firstHDMI port 130 can include a connector 118 including a number of pins.

FIG. 3B shows examples of waveforms corresponding to voltages at points104, 104-1, 106 and 106-1 of bi-directional HDMI ports 130 and 130-1.Also, FIG. 3B shows waveforms of measurements of voltage differencesbetween point 104 and point 106 (labeled as (104)-(106)) and point 104and point 108 (labeled as (104)-(108)) when a first bi-directional HDMIport 130 is connected to a second bi-directional HDMI port 130-1 thatcan be active as a sink at one time and a source at another time. Forexample, waveform 310 shows a voltage at point 106 for different periodsof time. In some implementations, a voltage at point 106 corresponds toa generated pulse signal received at point 106 (e.g., 1 Hertz pulsesignal at 3.3 Volts).

An example of a waveform 320 shows a voltage at point 106-1 ofbi-directional HDMI port 130-1 in accordance with some implementationsof the disclosed subject matter. In some implementations, for example, avoltage at point 106-1 can be a 3.3 Volts pulse signal with a 1 Hertzfrequency generated by a signal generator coupled to point 106-1 andthat starts at a different time than waveform 310 (e.g., that has adifferent phase from waveform 310).

An example of a waveform 330 shows a voltage at point 104 and point104-1 in accordance with some implementations of the disclosed subjectmatter. In some implementations, points 104 and 104-1 can have a commonvoltage beginning when bi-directional HDMI ports 130 and 130-1 areconnected (e.g., after “PORTS CONNECTED” at ti of FIG. 3B). For example,voltage from point 106 can be received at both points 104 and 104-1through lines 114 and 114-1 and similarly voltage from point 106-1 canbe received at both points 104 and 104-1 using the same lines. In somesuch implementations, for example, a voltage at points 104 and 104-1 cancorrespond to a sum of pulse signals at point 106 and point 106-1,resulting in a signal at points 104 and 104-1 that may have a differentfrequency, pulse width and/or duty cycle than the signal at point 106and the signal at point 106-1.

An example of a waveform 340 shows a voltage difference between point104 and point 106 (labeled as (104)-(106)) in accordance with someimplementations of the disclosed subject matter. In someimplementations, measurements of a voltage difference can be zero whilebi-directional HDMI ports 130 and 130-1 are not connected (e.g., before“PORTS CONNECTED” at t₁ of FIG. 3B). For example, when bi-directionalHDMI ports 130 and 130-1 are connected, the measurements of voltagedifference between point 104 and point 106 can be a pulse signal at 3.3Volts with a different a different frequency, pulse width and/or dutycycle to the one generated by a signal generator and received at point106.

An example of a waveform 350 shows a voltage difference between point104 and point 108 (labeled as (104)-(108)) in accordance with someimplementations of the disclosed subject matter. In someimplementations, measurements of the voltage difference can correspondto a voltage at point 106 while bi-directional HDMI ports 130 and 130-1are not connected (e.g., before “PORTS CONNECTED” at t₁ of FIG. 3B). Forexample, in some implementations, the voltage difference measuredbetween point 104 and point 106 can be a signal corresponding to thewaveform shown at 330.

In some implementations, as described below in connection with process500 of FIG. 5, a determination that a first bi-directional HDMI port 130is connected to a second bi-directional HDMI port 130-1 can be based ona voltage shown in waveform 340 and/or a voltage shown in waveform 350while bi-directional HDMI ports 130 and 130-1 are connected (e.g., after“PORTS CONNECTED” at t₁ of FIG. 3B). For example, in someimplementations, the comparison of waveforms 340 and 350 during a periodof time (e.g., “T₁” at 340) can be pulse signals each having anamplitude of 3.3 Volts, but at different frequencies, pulse widths,and/or duty cycles.

Mechanisms for controlling a bi-directional HDMI port can be implementedusing any suitable hardware in some implementations. For example, insome implementations, comparing the first voltage to the second voltageand determining based on the comparison that the HDMI device isconnected to an HDMI source and/or sink can be implemented using anysuitable general purpose computer or special purpose computer and/orserver. In a more particular example, a bi-directional HDMI port can beincluded in a mobile device (e.g., mobile phone, tablet etc.) and may becontrolled using a special purpose computer that includes a FieldProgrammable Gate Array (FPGA). In yet another example, a bi-directionalHDMI port can be included in a mobile device and may be controlled usinga general purpose computer that includes a Central Processing Unit(CPU). Any such special purpose computer or general purpose computer caninclude any suitable hardware. For example, as illustrated in examplehardware 400 of FIG. 4, such hardware can include hardware processor402, memory and/or storage 404, an input device controller 406, an inputdevice 408, display/audio drivers 410, display and audio outputcircuitry 412, communication interface(s) 414, an antenna 416, a bus418, and a bi-directional HDMI port 420.

In some implementations, hardware processor 402 can include any suitablehardware processor, such as a microprocessor, a micro-controller,digital signal processor(s), dedicated logic, and/or any other suitablecircuitry for controlling the functioning of a general purpose computeror a special purpose computer. In some implementations, hardwareprocessor 402 can be controlled by a computer program stored in memoryand/or storage 404. For example, the computer program can cause hardwareprocessor 402 to determine whether a bi-directional HDMI port isconnected to another HDMI port, determine whether the port iselectrically coupled to an HDMI sink, an HDMI source, or anotherbi-directional HDMI port, cause the device having the bi-directionalHDMI port to be set as a source and/or sink, and/or perform any othersuitable actions. As another example, the computer program can causehardware processor 402 to request that a user to set a device thatincludes a bi-directional HDMI port as a source and/or a sink based oninstructions associated with a comparison of voltage differences atconnector 118, and/or perform any other suitable actions.

Memory and/or storage 404 can be any suitable memory and/or storage forstoring programs, data, and/or any other suitable information in someimplementations. For example, memory and/or storage 404 can includerandom access memory, read-only memory, flash memory, hard disk storage,optical media, and/or any other suitable computer-readable medium.

Input device controller 406 can be any suitable circuitry forcontrolling and/or receiving input from one or more input devices 408 insome implementations. For example, input device controller 406 can becircuitry for receiving input from: a touch screen; one or more buttons;a computer mouse; a remote control; a computer keyboard; a voicerecognition circuit; a microphone; a camera; an optical sensor; anaccelerometer; a temperature sensor; a near field communication sensor,and/or any other type of input device.

Display/audio drivers 410 can be any suitable circuitry for controllingand/or driving output to one or more display/audio output circuitries412 in some implementations. For example, display/audio drivers 410 canbe circuitry for driving an LCD display, one or more speakers and/oraudio outputs, an LED, or any other type of output device.

Communication interface(s) 414 can be any suitable circuitry forinterfacing with one or more communication networks. For example,interface(s) 414 can include network interface card circuitry, wirelesscommunication circuitry, and/or any other suitable type of communicationnetwork circuitry.

Antenna 416 can be any suitable one or more antennas for wirelesslycommunicating with a communication network in some implementations. Insome implementations, antenna 416 can be omitted when not needed.

Bus 418 can be any suitable mechanism for communicating between two ormore components 402, 404, 406, 410, and 414 in some implementations.

Bi-directional port 420 can be any suitable circuitry for communicatingwith a device through an HDMI connection for transmitting and/orreceiving audio content and/or video content, and/or any other suitablecontent or instructions. For example, bi-directional port 420 caninclude any suitable HDMI circuitry (e.g., for receiving audio and/orvideo, receiving and/or sending CEC messages, etc.). In someimplementations, hardware processor 402 can send and receive datathrough bi-directional port 420 or any other communication links using,for example, a transmitter, receiver, transmitter/receiver, transceiver,or any other suitable communication device. As another example,bi-directional port 420 can be connected to another bi-directional portand send request data to hardware processor 402 for a user to set thedevice as an HDMI sink or a source. Hardware processor 402 can retrievedata such as a user interface from memory and/or storage 404 and presentthe information to a user through a display and audio output 412.

Any other suitable components can be included in hardware 400 inaccordance with some implementations.

FIG. 5 shows an example 500 of a process for controlling abi-directional HDMI port (such as bi-directional HDMI port 130 asdescribed above) in accordance with some implementations of thedisclosed subject matter. Process 500 can detect that bi-directionalHDMI port 420 is connected to another device, determine voltagedifferences between pins in connector 118, compare the voltagedifferences, and cause the device to be set as a source or a sink basedon the comparison. Process 500 can be executed by any suitable device insome implementations, such as a general purpose computer, a portablecomputer, a tablet computer, and/or a mobile phone, in someimplementations. As shown, at 502, process 500 can begin whenbi-directional HDMI port 420 is connected, for example, using an HDMIcable to an HDMI port of a sink, an HDMI port of a source, abi-directional HDMI port of a sink/source, and/or any other suitabledevice.

At 504, process 500 can cause a 3.3 Volts pulse signal with a frequencyof 1 Hertz to be generated. For example, in some implementations asignal generator can be coupled to point 106. Any suitable technique orcombination of techniques can be used to generate the pulse signal.

At 506, process 500 can detect voltage differences at points 104 and 106and points 104 and 108 in the circuit of bi-directional HDMI port 130 asshown in and described in connection with FIGS. 1A-1C. In someimplementations, process 500 can use any suitable technique orcombinations of techniques to detect the voltages and/or voltagedifferences. For example, detection of the voltage can be done using anysuitable voltage detector, such as a CMOS voltage detector, acomparator, and/or a non-contact voltage detector.

At 508, process 500 can determine whether bi-directional HDMI port 130is connected to an HDMI connector and/or any other suitable connectorand/or that a previously detected connection is no longer detected.Process 500 can detect a connection based on the values of the voltagedifferences (104)-(106) and (104)-(108) and the voltage at point 106.

If process 500 determines, at 508, that the voltage difference(104)-(106) is 0 Volts and that the voltage difference (104)-(108) hasthe same frequency as the voltage at point 106 (“NO” at 508) thenprocess 500 can determine that bi-directional HDMI port 420 is notconnected to a device such as an HDMI source and/or sink. Process 500can return to 502 where bi-directional HDMI port 420 can connect usingan HDMI cable or other suitable connection to an HDMI port of a sink, anHDMI port of a source, a bi-directional HDMI port of a sink/source,and/or any other suitable device.

Otherwise, if process 500 determines at 508 that a connection isdetected (“YES at 508”), process 500 can proceed to 510 and determinewhether voltage differences between points 104 and 106 and points 104and 108 in the circuit of bi-directional HDMI port 130 is 0 Volts duringa period of time (e.g., period T₁ of FIGS, 1B, 2B, and 3B) after theconnection is established.

If process 500 determines at 510 that the voltage difference betweenpoints 104 and 106 and points 104 and 108 during period of time T₁ is 0Volts (“YES” at 512), process 500 can set the device that includes thebi-directional HDMI port to act as a source using any suitable hardware,firmware and/or software at 512. For example, in some implementations,hardware processor 402 can retrieve instructions from memory and/orstorage 404 that can cause audio data and/or video data to betransmitted by HDMI port 420 of the device executing process 500. Asanother example, hardware processor 402 can execute instructions todisable display and/or audio output because the audio data and/or videodata that would be presented is not being presented by the same device.

Process 500 can return to 506 from setting the device as a source at 512in order to determine if the device continues to be connected to a sinkusing bi-directional HDMI port 420. For example, in someimplementations, as long as voltage difference (104)-(106) is a pulsesignal with a high value of 5 Volts and a low value of 1.7 Volts andvoltage difference (104)-(108) is at 0 Volts, process 500 can determinethat the source device continues to be detected as connected to a sinkusing bi-directional HDMI port 420 and process 500 can return to 506.Otherwise, if different values are detected, process 500 can determinethat the device is no longer connected to a sink and can return to 506to determine whether another connection is detected.

Otherwise, if process 500 determines at 510 that the voltage differencesbetween points 104 and 106 and points 104 and 108 during the period oftime T₁ in the circuit of bi-directional HDMI port 130 is not 0 Volts(“NO” at 510), process 500 can proceed to 514.

Process 500 can proceed to 514 and determine whether a voltagedifference between points 104 and 106 is a pulse with a high value at 5Volts and a low value at 1.7 Volts in the circuit of bi-directional HDMIport 130 and voltage difference between points 104 and 108 is 5 Voltsduring a period of time T₁ beginning when an HDMI sink cable is pluggedin.

If process 500 determines at 514 that the voltage difference betweenpoints 104 and 106 is a pulse with a high value at 5 Volts and a lowvalue at 1.7 Volts and the voltage difference between points 104 and 108is 5 Volts (“YES” at 514), process 500 can set the device that includesthe bi-directional HDMI port to act as a sink device at 516. The devicecan be set using any suitable hardware, firmware and/or software. Forexample, in some implementations, hardware processor 402 can retrieveinstructions from memory and/or storage 404 that can disable certaincommunication interfaces because the audio data and/or video data thatwould be presented is being presented by the same device.

Process 500 can return to 506 from setting the device as a sink at 516in order to determine if the device continues to be connected to asource using bi-directional HDMI port 420. For example, in someimplementations, as long as voltage difference (104)-(106) is a pulsesignal with a high value of 3.3 Volts and a low value of 1.7 Volts andvoltage difference (104)-(108) is at 0 Volts, process 500 can determinethat the device can continue to be detected as connected to a sourceusing bi-directional HDMI port 420 and process 500 can return to 506.Otherwise, if different values are detected, process 500 can determinethat the device is no longer connected to a source and can return to 506to determine whether another connection is detected

Otherwise, if process 500 determines at 514 that the voltage differencebetween points 104 and 106 is not a pulse with a high value at 5 Voltsand a low value at 1.7 Volts and the voltage difference between point104 and point 108 during a period of time T₁ in the circuit ofbi-directional HDMI port 130 is not 5 Volts (“NO” at 514), process 500can proceed to 518 and request that a user set the device to act as asink or a source. In some implementations, for example, a user can beprompted by a user interface to input a selection for a device using anysuitable input device, select a position of a mechanical switch, and/orin any other suitable manner. Upon selection of whether to set thedevice including bi-directional HDMI port 420 as a sink or source deviceat 520, process 500 can set the bi-directional HDMI port to act as asink or a source based on the selection and then proceed to return to506 to determine whether bi-directional HDMI port 130 is connected to anHDMI connector and/or any other suitable connector.

In some implementations, any suitable computer readable media can beused for storing instructions for performing the functions and/orprocesses described herein. For example, in some implementations,computer readable media can be transitory or non-transitory. Forexample, non-transitory computer readable media can include media suchas magnetic media (such as hard disks, floppy disks, etc.), opticalmedia (such as compact discs, digital video discs, Blu-ray discs, etc.),semiconductor media (such as flash memory, electrically programmableread only memory (EPROM), electrically erasable programmable read onlymemory (EEPROM), etc.), any suitable media that is not fleeting ordevoid of any semblance of permanence during transmission, and/or anysuitable tangible media. As another example, transitory computerreadable media can include signals on networks, in wires, conductors,optical fibers, circuits, and any suitable media that is fleeting anddevoid of any semblance of permanence during transmission, and/or anysuitable intangible media.

It should be understood that the above described steps of the process ofFIG. 5 can be executed or performed in any order or sequence not limitedto the order and sequence shown and described in the figures. Also, someof the above steps of the process of FIG. 5 can be executed or performedsubstantially simultaneously where appropriate or in parallel to reducelatency and processing times.

It should be noted that, as used herein, voltages and measurements ofvoltage differences are approximate values and may vary slightly in adevice. The voltages and voltage differences, used herein, are merelygiven as examples, and any suitable value, or any suitable combinationof values can be used with the mechanisms described herein.

It should also be noted that, as used herein, the term mechanism canencompass hardware, software, firmware, or any suitable combinationthereof

Accordingly, methods, systems, and media for controlling abi-directional HDMI port are provided.

Although the invention has been described and illustrated in theforegoing illustrative implementations, it is understood that thepresent disclosure has been made only by way of example, and thatnumerous changes in the details of implementation of the invention canbe made without departing from the spirit and scope of the invention,which is limited only by the claims that follow. Features of thedisclosed implementations can be combined and rearranged in variousways.

What is claimed is:
 1. A method for controlling a High-DefinitionMultimedia Interface (HDMI) port in a device connected to an HDMIconnector, the method comprising: providing a voltage signal at a firstpin of the HDMI port, wherein the voltage signal has a first frequency;detecting a voltage at the first pin; detecting a voltage at a secondpin of the HDMI port; comparing the voltage at the first pin to thevoltage at the second pin; determining, based on the comparison of thevoltage at the first pin to the voltage at the second pin, whether theHDMI port of the device is connected to an HDMI source device or an HDMIsink device; in response to determining that the HDMI port is connectedto an HDMI source device, causing the HDMI port to act as an HDMI sink;and in response to determining that the HDMI port is connected to anHDMI sink device, causing the HDMI port to act as an HDMI sink.
 2. Themethod of claim 1, further comprising: determining based on thecomparison of the voltage at the first pin to the voltage at the secondpin that the HDMI port of the device is connected to a bi-directionalHDMI port; and causing the device comprising the HDMI port to prompt auser to set the HDMI port to act as an HDMI source or an HDMI sink basedon the determination that the HDMI port is connected to thebi-directional HDMI port.
 3. The method of claim 1, wherein the HDMIport acts as a sink for multimedia data during a first period of timeduring which the HDMI port is connected to an HDMI source and acts as asource during a second period of time during which the HDMI port isconnected to an HDMI sink.
 4. The method of claim 1, wherein the firstpin is pin
 18. 5. The method of claim 1, wherein the second pin is pin19.
 6. The method of claim 1, wherein a switch is coupled between thefirst pin and the second pin.
 7. The method of claim 1, wherein avoltage source is coupled to the first pin of the HDMI port, wherein thevoltage provides a signal having a magnitude of about 5 Volts and afrequency of about 0 Herzt.
 8. The method of claim 1, wherein thevoltage signal provided to the first pin has a magnitude of about 3.3Volts and a frequency of about 1 Hertz.
 9. The method of claim 1,wherein the HDMI port is set as a sink based on the difference betweenthe voltage at the first pin and the voltage at the second pin beingabout 5 Volts.
 10. The method of claim 1, wherein the HDMI port is setas a source based on the difference between the voltage at the first pinand the voltage at the second pin being about 0 Volts.
 11. The method ofclaim 1, wherein the device comprising the HDMI port prompts a user toset the HDMI port to act as either a sink or a source if the differencebetween the voltage at the first pin and the voltage at the second pinis a pulse signal having a magnitude of about 3.3 Volts.
 12. A systemfor controlling a High-Definition Multimedia Interface (HDMI) port in adevice connected to an HDMI connector, the system comprising: a firstpin of the HDMI port; a second pin of the HDMI port; a voltage sourcecoupled to the first pin that provides a voltage signal having a firstfrequency; and at least one hardware processor that: detects a voltageat the first pin; detects a voltage at the second pin; compares thevoltage at the first pin to the voltage at the second pin; determines,based on the comparison of the voltage at the first pin to the voltageat the second pin, whether the HDMI port of the device is connected toan HDMI source device or an HDMI sink device; in response to determiningthat the HDMI port is connected to an HDMI source device, causes theHDMI port to act as an HDMI sink; and in response to determining thatthe HDMI port is connected to an HDMI sink device, causes the HDMI portto act as an HDMI sink.
 13. The system of claim 12, wherein the at leastone hardware processor also: determines, based on the comparison of thevoltage at the first pin to the voltage at the second pin, that the HDMIport of the device is connected to a bi-directional HDMI port; andcauses the device comprising the HDMI port to prompt a user to set theHDMI port to act as an HDMI source or an HDMI sink based on thedetermination that the HDMI port is connected to the bi-directional HDMIport.
 14. The system of claim 12, wherein the hardware processor causesthe HDMI port acts as a sink for multimedia data during a first periodof time during which the HDMI port is connected to an HDMI source andcauses the HDMI port to act as a source during a second period of timeduring which the HDMI port is connected to an HDMI sink.
 15. The systemof claim 12, wherein the first pin is pin
 18. 16. The system of claim12, wherein the second pin is pin
 19. 17. The system of claim 12,further comprising a switch coupled between the first pin and the secondpin.
 18. The system of claim 12, further comprising a second voltagesource that is coupled to the first pin of the HDMI port, wherein thesecond voltage source provides a signal having a magnitude of about 5Volts and a frequency of about 0 Herzt.
 19. The system of claim 12,wherein the first voltage source provides the signal to the first pinhaving a magnitude of about 3.3 Volts, wherein the first frequency isabout 1 Hertz.
 20. The system of claim 12, wherein the at least onehardware processor causes the HDMI port to be set as a sink based on thedifference between the voltage at the first pin and the voltage at thesecond pin being about 5 Volts.
 21. The system of claim 12, wherein theat least one hardware processor causes the HDMI port to be set as asource based on the difference between the voltage at the first pin andthe voltage at the second pin being about 0 Volts.
 22. The system ofclaim 12, wherein the at least one hardware processor prompts a user ofthe system to provide input to set the HDMI port to act as either a sinkor a source if the difference between the voltage at the first pin andthe voltage at the second pin is a pulse signal having a magnitude ofabout 3.3 Volts.
 23. A non-transitory computer readable mediumcontaining computer executable instructions that, when executed by aprocessor, cause the processor to perform a method for controlling aHigh-Definition Multimedia Interface (HDMI) port in a device connectedto an HDMI connector, the method comprising: applying a voltage signalat a first pin of the HDMI port, wherein the voltage signal has a firstfrequency; detecting a voltage at the first pin; detecting a voltage ata second pin of the HDMI port; comparing the voltage at the first pin tothe voltage at the second pin; determining, based on the comparison ofthe voltage at the first pin to the voltage at the second pin, whetherthe HDMI port of the device is connected to an HDMI source device or anHDMI sink device; in response to determining that the HDMI port isconnected to an HDMI source device, causing the HDMI port to act as anHDMI sink; and in response to determining that the HDMI port isconnected to an HDMI sink device, causing the HDMI port to act as anHDMI sink.